import re

import yaml
from pytest_yaml.templates import Template

from commons.global_info import dict_var

def var_replace_value(old_str: str):
    new_str = ""
    extract_var_list = re.findall("{(.*?)}", old_str)
    print("需要替换的url中的变量", extract_var_list)
    if extract_var_list:
        for extract_var in extract_var_list:
            new_str = old_str.replace("{" + extract_var + "}", dict_var[extract_var])
            # 当存在多个变量时，需要重新赋值给old_str，防止之前替换的变量被再次替换
            old_str = new_str

    return new_str

def value_replace_var(yaml_data):
    # 将yaml数据转为字符串
    str_data=yaml.dump(yaml_data)
    rep_str=Template(str_data).render(dict_var)
    dict_data=yaml.load(rep_str,Loader=yaml.FullLoader)
    return dict_data
